注意:所有文章除特别说明外,转载请注明出处.
概念
单点登录(SSO)是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
SSO的实现方式
1.以Cookie作为凭证媒介
这种方式是最简单的单点登录方式,使用Cookie作为媒介,存放用户凭证。用户在登录父应用之后,返回一个加密的Cookie,当用户访问子应用的时候,携带上这个Cookie,授权应用解密Cookie并进行校验,校验通过则登录当前用户。
提示:这种方式有两个弊端:1.首先是Cookie不安全,虽然通过加密Cookie可以保证安全性,然这是在源程序不泄露的情况下。如果Cookie加密算法泄露,攻击者可以伪造Cookie则可以伪造特定用户身份。2.其次是不能实现跨域免登。
2.通过JSONP
对于跨域问题可以使用JSONP实现,用户在登录父应用之后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求职工带上域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。虽然这样能够解决跨域问题,但是加密算法一旦泄露,攻击者可以在本地建立一个实现了登录接口的假冒父应用,通过绑定Host来把子应用发起的请求指向本地的假冒父应用,并作出回应。
3.通过页面重定向
通过父应用于子应用来回重定向中进行通信,实现信息的安全传递。
4.独立登录系统
用户中心不处理业务逻辑,只是处理用户信息的管理以及授权给第三方应用。第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户。